This invention generally relates to computer systems, and more specifically relates to networking of computer systems.
Modern life is becoming more dependent upon computer networks. Computer networks have evolved into extremely sophisticated systems, and are used in many different applications. These applications involve everything from basic local area networks, to large scale networks like the internet and satellite communication networks.
As computer networks become more integrated into diverse aspects of daily life, their reliability and efficiency becomes a greater and greater necessity. In order to ensure sufficient reliability it is necessary to ensure that the network remains fully connected. Full connectivity generally requires that every node in the network be able to communicate with every other node in the network.
Maintaining full connectivity in a network is particularly problematic when the configuration of the network changes over time. For example, in satellite communication networks, the relative movement of the satellites can cause some links between satellites to be available only for certain periods of times. In other networks, the failure of connections between computer network nodes can disrupt communications. In both of these examples, the new connections must be made to fully re-connect the network.
Another requirement in some computer networks is that network resources be conserved to whatever extent is possible. For example, it is desirable to minimize the number of communication terminals on network nodes that are utilized to connect a network. Minimizing the number of communication terminals used frees these resources for other uses, conserves power and generally improves the performance of the network.
As the complexity of networks have grown, it has become increasingly difficult to effectively manage network connectivity to provide full connectivity while minimizing excessive resource allocation. This difficulty is particularly acute in those networks where the availability of connections changes over time. Thus, what is needed is a system and method for providing network connectivity that efficiently allocates resources while providing full connectivity to a network where resource availability changes over time.